import java.util.ArrayList;
import java.util.List;

/***
 * 4. 规则引擎（RuleEngine）
 * 负责管理所有规则并验证零件组合。
 * 
 * 说明：
 * rules 存储所有规则（如上下游规则、颜色规则）。
 * validatePair 逐一应用规则，检查零件配对是否合法。
 */

public class RuleEngine {
    private final List<Rule> rules;

    public RuleEngine() {
        this.rules = new ArrayList<>();
    }

    // 添加规则
    public void addRule(Rule rule) {
        rules.add(rule);
    }

    // 检查两个零件是否可以配对
    public boolean validatePair(Part part1, Part part2) {
        for (Rule rule : rules) {
            if (!rule.isValid(part1, part2)) {
                System.out.println("验证失败：[Validation failed:] \n" + rule.getDescription());
                return false;
            }
        }
        return true;
    }
}
